1. Field of the Invention
This invention relates to a motor control apparatus and a motor control method, and particularly, to a motor control apparatus and motor control method of controlling a motor by selectively employing timings of the rising and falling of pulse signals from an encoder which are used in serial printer to control a carriage motor driving a carriage or a paper feeding motor practicing a sheet feeding task, so as to detect a motor velocity. The present invention is also directed to a record medium that stores computer programs to execute such a motor control method.
2. Related Background Art
First explained is general configuration of an ink jet printer using a motor control device and its control method.
FIG. 1 is a block diagram that shows general configuration of an ink jet printer.
The ink jet printer shown in FIG. 1 includes a paper feed motor (hereinafter also called a PF motor) 1 that feeds paper; a paper feed motor driver 2 that drives the paper feed motor 1; a carriage 3 that supports a head 9 fixed thereto to supply ink onto printing paper 50 and is driven to move in parallel to the printing paper 50 and vertically of the paper feeding direction; a carriage motor (hereinafter also called a CR motor) 4 that drives the carriage 3; a CR motor driver 5 that drives the carriage motor 4; a DC unit 6 that outputs a D.C. current for controlling the CR motor driver 5; a pump motor 7 that controls the draft of ink for the purpose of preventing clogging of the head 9; a pump motor driver 8 that drives the pump motor 7; a head driver 10 that drives and controls the head 9; a linear encoder 11 fixed to the carriage 3; a linear encoder coding plate 12 having slits in predetermined intervals; a rotary encoder 13 for the PF motor 1; a paper detecting sensor 15 that detects the terminal position of each sheet of paper under printing; a CPU 16 that controls the whole printer; a timer IC 17 that periodically generates interruption signals to the CPU 16; an interface portion (hereinafter also called IF) 19 that exchanges data with a host computer 18; an ASIC 20 that controls the character resolution, driving waveform of the head 9, and so on, in accordance with character information sent from the host computer 18 through the IF 19; a PROM 21, a RAM 22 and an EEPROM 23 that are used as an operation area of the ASIC 20 and the CPU 16 and a program storage area; a platen 25 that supports the printing paper 50; a transport roller 27 driven by the PF motor 1 to transport the printing paper 50; a pulley 30 attached to a rotating shaft of the CR motor 4; and a timing belt 31 driven by the pulley 30.
The DC unit 6 controls and drives the paper feed motor driver 2 and the CR motor driver 5 in response to a control instruction sent from the CPU 16 and outputs of the encoders 11, 13. Both the paper feed motor 1 and the CR motor 4 are DC motors.
FIG. 2 is a perspective view that illustrates configuration around the carriage 3 of the ink jet printer.
As shown in FIG. 2, the carriage 3 is connected to the carriage motor 4 by the timing belt 31 via the pulley 30, and driven to move in parallel with the platen 25 under guidance of a guide member 32. The carriage 3 has the recording head 9 projecting from its surface opposed to the printing paper and having a row of nozzles for releasing black ink and a row of nozzles for releasing color ink. These nozzles are supplied with ink from the ink cartridge 34 and release drops of ink onto the printing paper to print characters and images.
In a non-print area of the carriage 3, there is provided a capping device 35 for shutting nozzle openings of the recording head 9 when printing is not executed, and a pump unit 36 having the pump motor 7 shown in FIG. 1. When the carriage 3 moves from the print area to the non-print area, it contacts a lever, not shown, and the capping device 35 moves upward to close the head 9.
When any of the nozzle openings of the head 9 is clogged, or ink is forcibly released from the head 9 just after replacement of the cartridge 34, the pump unit 36 is activated while closing the head 9, and a negative pressure from the pump unit 36 is used to suck out ink from the nozzle openings. As a result, dust and paper powder are washed out from around the nozzle openings, and bubbles in the head 9, if any, are discharged together with the ink to the cap 37.
FIG. 3 is a diagram schematically illustrating configuration of the linear encoder 11 attached to the carriage 3.
The encode 11 shown in FIG. 3 includes a light emitting diode 11a, collimator lens 11b and detector/processor 11c. The detector/processor 11c has a plurality of (four) photo diodes 11d, signal processing circuit 11e, and two comparators 11fA, 11fB.
When a voltage VCC is applied across opposite ends of the light emitting diode 11a through a resistor, light is emitted from the light emitting diode 11a. This light is collimated into parallel beams by the collimator lens 11b, and the beams pass through the coding plate 12. The coding plate 12 has slits in predetermined intervals (for example, in intervals of {fraction (1/180)} inch).
Parallel beams passing through the coding plate 12 enter into photo diodes 11d through fixed slits, not shown, and are converted into electric signals. Electric signals output from these four photo diodes 11d are processes in the signal processing circuit 11e. Signals output from the signal processing circuit 11e are compared in the comparators 11fA, 11fB, and comparison results are output as pulses. Pulses ENC-A, ENC-B output from the comparators 11fA, 11fB are outputs of the encoder 11.
FIGS. 4A and 4B are timing charts showing waveforms of two output signals from the encoder 11 during normal rotation of the CR motor and during its reverse rotation.
As shown in FIGS. 4A and 4B, in both normal rotation and reverse rotation of the CR motor, the pulse ENC-A and the pulse ENC-B are different in phase by 90 degrees. The encoder 4 is so configured that the pulse ENC-A is forward in phase by 90 degrees relative to the pulse ENC-B as shown in FIG. 4A when the CR motor 4 rotates in the normal direction, i.e., when the carriage 3 is moving in its main scanning direction whereas the pulse ENC-A is behind in phase by 90 degrees relative to the pulse ENC-B as shown in FIG. 4B when the CR motor 4 rotates in the reverse direction. Then, one period T of these pulses corresponds to each interval of the slits of the coding plate 12 (for example, {fraction (1/180)} inch), and it is equal to the time required for the carriage 3 to move from a slit to another.
On the other hand, the rotary encoder 13 for the PF motor 1 has the same configuration as the linear encoder 11 except that the former is a rotatable disc that rotates in response to rotation of the PF motor 1, and the rotary encoder 13 also outputs two output pulses ENC-A, ENC-B. In ink jet printers, in general, slit interval of a plurality of slits provided on a coding plate of the encoder 13 for the PF motor 1 is {fraction (1/180)} inch, and paper is fed by {fraction (1/1440)} inch when the PF motor rotates by each slit interval.
FIG. 5 is a perspective view showing a part related to paper feeding and paper detection.
With reference to FIG. 5, explanation is made about the position of the paper detecting sensor 15 shown in FIG. 1. In FIG. 5, a sheet of printing paper 50 inserted into a paper feed inlet 61 of a printer 60 is conveyed into the printer 60 by a paper feed roller 64 driven by a paper feed motor 63. The forward end of the printing paper 50 conveyed into the printer 60 is detected by an optical paper detecting sensor 15, for example. The paper 50 whose forward end is detected by the paper detecting sensor 15 is transported by a paper feed roller 65 driven by the PF motor 1 and a free roller 66.
Subsequently, ink is released from the recording head (not shown) fixed to the carriage 3 which moves along the carriage guide member 32 to print something on the printing paper 50. When the paper is transported to a predetermined position, the terminal end of the printing paper 50 currently under printing is detected by the paper detecting sensor 15. The printing paper 50 after printing is discharged outside from a paper outlet 62 by a discharge roller 68 driven by a gear 67C, which is driven by the PF motor 1 via gears 67A, 67B, and a free roller 69.
FIG. 6 is a perspective view illustrating details of parts associated to paper feeding in a printer, where a paper feeding roller 65 has a rotation axis coupled to a rotary encoder 13.
With reference to FIG. 6 and FIG. 5, the parts in the printer associated to the paper feeding will now be described in details.
When a leading end of a printing paper 50, which has been inserted through a paper feed inlet 61 into a printer 60 by a sheet supplying roller 64, is detected by a paper detecting sensor 15, the paper feeding roller 65 and a follower roller 66 are cooperative in feeding the printing paper 50. The paper feeding roller 65 is provided on and about a smap shaft 83 or a rotation axis of a large gear 67a engaged with a small gear 87 driven by a PF motor 1 while the follower roller 66 is provided in a holder 89 at its paper evacuating end in the context of a paper feeding direction, where the printing paper 50 from a paper supply source is pressed vertically.
The PF motor 1 is fitted in and secured to a frame 86 in the printer 60 by a screw 85, and the rotary encoder 13 is placed in a specified position around the large gear 67a while a character board 14 for the rotary encoder is connected to the smap shaft 83 or the rotation axis of the large gear 67a. 
After the printing paper 50, which has already been supplied by the paper feeding roller 65 and the follower roller 66 into the printer, passes over a platen 84 serving to support the printing paper 50, a paper evacuating gear 68 which is rotated by the PF motor 1 via a group of gears, the small gear 87, the large gear 67a, a medium gear 67b, a small gear 88, and a paper evacuating gear 67c, and a toothed roller 69 or a follower roller cooperatively presses and holds the printing paper 50 between them to further feed the printing paper 50 until it is evacuated from the paper outlet 62 to the outside of the printer.
While the printing paper 50 lies over the platen 84, a carriage 3 moves laterally in a space defined above the platen 84 along a guide member 32, and simultaneously, ink is injected from a recording head (not shown) fixed to the carriage 3 to print characters in the printing paper.
Now, an arrangement of a DC unit 6 will be described, which is a prior art DC motor control apparatus used to control a carriage (CR) motor 4 for such an ink jet printer as mentioned above, and additionally, a control method by the DC unit 6 will also be explained.
FIG. 7 is a block diagram showing an arrangement of the DC unit 6 serving as the DC motor control apparatus while FIG. 8 is a timing chart illustrating conditions of encoder pulse edge detection in a speed calculator 6d of the prior art DC unit 6, and FIGS. 9A and 9B are graphs illustrating time-varying motor current and motor speed of the CR motor 4 under control by the DC unit 6.
The DC unit 6 shown in FIG. 7 includes a position operator 6a, a subtracter 6b, a target speed operator 6c, a speed operator 6d, a subtracter 6e, a proportional element 6f, an integral element 6g, a differential element 6h, an adder 6i, a D/A converter 6j, a timer 6k, and an acceleration controller 6m. 
The position operator 6a detects rising edges and tail edges of the output pulses ENC-A and ENC-B of the encoder 11, then counts the number of edges detected, and operates the position of the carriage 3 from the counted value. This counting adds xe2x80x9c+1xe2x80x9d when one edge is detected while the CR motor 4 rotates in the normal direction, and adds xe2x80x9cxe2x88x921xe2x80x9d when one edge is detected while the CR motor 4 rotates in the reverse direction. Period of pulses ENC-A and period of pulses ENC-B are equal to the slit interval of the coding plate 12, and the pulses ENC-A and ENC-B are different in phase by 90 degrees. Therefore, the count value xe2x80x9c1xe2x80x9d of that counting corresponds to xc2xc of the slit interval of the coding plate 12. As a result, distance of the movement from the position of the carriage 3, at which the count value corresponds to xe2x80x9c0xe2x80x9d, can be obtained by multiplying the above count value by xc2xc of the slit interval. Resolution of the encoder 11 in this condition is xc2xc of the slit interval of the coding plate 12. If the slit interval is {fraction (1/180)} inch, then the resolution is {fraction (1/720)} inch.
The subtracter 6b operates positional difference between the target position sent from the CPU 16 and the actual position of the carriage 3 obtained by the position operator 6a. 
The target speed calculator 6c computes a target velocity of the carriage 3 by referring to a positional deviation produced by a subtracter 6b. A result of the arithmetic operation is obtained by a multiply operation of the positional deviation by a gain KP. The gain KP varies depending upon the positional deviation. A value of the gain KP may be stored in a look-up table not shown.
The speed calculator 6d computes a velocity of the carriage 3 from the output pulses ENC-A and ENC-B from the encoder 11. The velocity is obtained in a manner as explained below.
In order to implement this velocity computation, first leading edges and trailing edges of the output pulses ENC-A and ENC-B from the encoder 11 must be detected, and the conditions of encoder pulse edge detection in the prior art speed calculator 6d assume two types of patterns as illustrated in FIGS. 8A and 8B.
In the first condition of the encoder pulse edge detection illustrated in FIG. 8A, either one of the output pulses ENC-A and ENC-B, namely the output pulse ENC-A in this case, for example, is used to sequentially detect only the leading edges of the output pulse to count periods of time between two of the edges corresponding to intervals between two of slits in a character board 12 by using a timer counter. A count value is denoted by T (T1=T1, T2, . . . ), and, assuming that the intervals of two of the slits in the character board 12 are represented by xcex, the velocity of the carriage can be designated as xcex/T and be sequentially obtained.
Under the second condition of pulse edge detection illustrated in FIG. 8B, both the output pulses ENC-A and ENC-B are used to sequentially detect their respective leading edges and trailing edges, so as to similarly permit a timer counter to count time intervals between the edges corresponding to one quarter of the interval between the slits in the character board 12. Assuming that a resultant count value is T (T=T1, T2, . . . ) and that the interval between the slits in the character board 12 is xcex, the velocity of the carriage can be sequentially obtained as xcex/(4T).
The above-mentioned first condition of pulse edge detection is employed when the velocity may be appropriately detected even with relatively low resolution, and the above-mentioned second condition is employed when the velocity must be detected with relatively high resolution.
The subtracter 6e operates speed difference between the target speed and the actual speed of the carriage 3 operated by the speed operator 6d. 
The proportional element 6f multiplies the speed difference by a constant Gp, and outputs its multiplication result. The integral element 6g cumulates products of speed differences and a constant Gi. The differential element 6h multiplies the difference between the current speed difference and its preceding speed difference by a constant Gd, and outputs its multiplication result. Operations of the proportional element 6f, the integral element 6g and the differential element 6h are conducted in every period of output pulses ENC-A of the encoder 11, synchronizing with the rising edge of each output pulse ENC-A, for example.
Outputs of the proportional element 6f, the integral element 6g and the differential element 6h are added in the adder 6i. Then, the result of the addition, i.e., the drive current of the CR motor 4, is sent to the D/A converter 6j and converted into an analog current. Based on this analog current, the CR motor 4 is driven by the driver 5.
The timer 6k and the acceleration controller 6m are used for controlling acceleration whereas PID control using the proportional element 6f, the integral element 6g and the differential element 6h is used for constant speed and deceleration control during acceleration.
The timer 6k generates a timer interrupt signal every predetermined interval in response to a clock signal sent from the CPU 16.
The acceleration controller 6m cumulates a predetermined current value (for example 20 mA) to the target current value every time it receives the timer interrupt signal, and results of the integration, i.e, target current values of the DC motor during acceleration, are sent to the D/A converter 6j from time to time. Similarly to PID control, the target current value is converted into an analog current by the D/A converter 6j, and the CR motor 4 is driven by the driver 5 according to this analog current.
The driver 5 has four transistors, for example, and it can create (a) a drive mode for rotating the CR motor 4 in the normal or reverse direction; (b) a regeneration brake drive mode (a short brake drive mode, which is the mode maintaining a halt of the CR motor); and (c) a mode for stopping the CR motor, by turning those transistors ON or OFF in accordance with outputs from the D/A converter 6j. 
Next explained is the performance of the DC unit 6, that is, the conventional DC motor control method, with reference to FIGS. 9A and 9B.
While the CR motor 4 stops, when a start instruction signal for starting the CR motor 4 is sent from the CPU 16 to the DC unit 6, a start initial current value 10 is sent from the acceleration controller 6m to the D/A converter 6j. This start initial current value I0 is sent together with the start instruction signal from the CPU 16 to the acceleration controller 6m. Then, this current value I0 is converted into an analog current by the D/A converter 6j and sent to the driver 5 which in turn start the CR motor 4 (see FIGS. 9A and 9B). After the start instruction signal is received, the timer interrupt signal is generated every predetermined interval from the timer 6k. The acceleration controller 6m cumulates a predetermined current value (for example, 20 mA) to the start initial current value I0 every time it receives the timer interrupt signal, and sends the cumulated current value to the D/A converter 6j. Then, the cumulated current value is converted into an analog current by the D/A converter 6j and sent to the driver 5. Then, the CR motor is driven by the driver 5 so that the value of the current supplied to the CR motor 4 becomes the cumulated current value mentioned above, and the speed of the CR motor 4 increases (see FIG. 9B). Therefore, the current value supplied to the CR motor 4 represents a step-like aspect as shown in FIG. 9A. At that time, the PID control system also works, but the D/A converter 6j selects and employs the output from the acceleration controller 6m. 
Cumulative processing of current values of the acceleration controller 6m is continued until the cumulated current value reaches a fixed current value Is. When the cumulated current value reaches the predetermined value Is at time t1, the acceleration controller 6m stops its cumulative processing, and supplies the fixed current value Is to the D/A converter 6j. As a result, the CR motor 4 is driven by the driver 5 such that the value of the current supplied to the CR motor 4 becomes the current value Is (see FIG. 9A).
In order to prevent the speed of the CR motor 4 from overshooting, if the speed of the CR motor 4 increases to a predetermined value V1 (see time t2), the acceleration controller 6m makes a control to reduce the current supplied to the CR motor 4. At that time, the speed of the CR motor 4 further increases, but when it reaches a predetermined speed Vc (see time t3 of FIG. 9B), the D/A converter 6j selects the output of the PID control system, i.e., the output of the adder 6i, and PID control is effected.
That is, based on the positional difference between the target position and the actual position obtained from the output of the encoder 11, the target speed is operated, and based on the speed difference between this target speed and the actual speed obtained from the output of the encoder 11, the proportional element 6f, the integral element 6g and the differential element 6h act to perform proportional, the integral and the differential operations, respectively, and based on the sum of results of these operations, the CR motor 4 is controlled. These proportional, integral and differential operations are conducted synchronously with the rising edge of the output pulse ENC-A of the encoder 11, for example. As a result, speed of the DC motor 4 is controlled to be a desired speed Ve. The predetermined speed VC is preferably a value corresponding to 70 through 80% of the desired speed Ve.
From time t4, the DC motor 4 reaches the desired speed, and the carriage 3 also reaches the desired constant speed Ve and can perform printing.
When the printing is completed and the carriage 3 comes close to the target position (see time t5 in FIG. 9B), the positional difference becomes smaller, and the target speed also becomes slower. Therefore, the speed difference, i.e., the output of the subtracter 6e becomes a negative value, and the DC motor 4 is decelerated and stops at time t6.
However, the encoder pulse edge detecting conditions in the speed calculator 6d in the prior art motor control device or the DC unit 6 invite the following problems. That is, under the first condition of pulse edge detection, when the velocity of the carriage 3 is low, the resolution of the detection of the motor velocity is too low, and under the second condition of pulse edge detection, dispersions of duty ratios of the pulses and of phase differences between both the pulses occur to disable the motor control device for constantly detecting the motor velocity with high accuracy under either of the pulse edge detection conditions. There also arises an additional problem that in motor stop control, an accuracy of the positioning is poor at low speed.
In the ink jet printer configured as described above, paper feeding is, as illustrated in FIG. 5, effected by using the paper feeding roller 65 rotated by the PF motor 1 and the follower roller 66. The follower roller 65 utilizes a spring 80 to press the printer paper 50 against the paper-feeding roller 65, as illustrated in FIG. 10.
In reality, when the PF motor 1 is actuated, the spring 80 causes the printing paper 50 to move in a reverse direction to a normal feeding direction thereof, which, in turn, causes the paper feeding roller 65 to rotate in reverse, or more specifically, which causes the encoder 13 attached to the paper feeding roller 65 to rotate in reverse. When the PF motor 1 is actuated to cause reverse rotations of the paper feeding roller 65 to which the encoder 13 is attached, the speed calculator 6d produces inaccurate output which is a result of arithmetic operations of the velocity based upon output from the encoder 13, or otherwise, the timer counter used in the arithmetic operations for the velocity by the speed calculator 6d causes overflow which disables the timer counter for detecting accurate velocity.
It is an object of the invention to provide a motor control apparatus configured to greatly enhance a resolution of detection of a motor velocity and to bring about constantly highly accurate detection of the motor velocity and it is also an object to provide a control method of doing the same.
The motor control apparatus according to the invention has a basic arrangement to detect a motor velocity which includes a signal generator producing a first pulse signal proportional in cycle to a motor velocity and a second pulse signal proportional in cycle to the motor velocity and different in phase from the first pulse signal is about one quarter of a single cycle, a pulse edge detector distinctively detecting leading edges and trailing edges of the first and second pulse signals from one another, a time counter measuring a period of time between the pulse edges in the same direction of the same pulse signal, and a velocity converter using the period of time measured by the time counter to sequentially convert it into the motor velocity and thereby detect the motor velocity, and such an arrangement of the invention can greatly enhance a resolution of the detection of the motor velocity and permit constantly accurate detection of the motor velocity.
The motor control apparatus according to the invention may have a practical arrangement to detect a motor velocity which includes a signal generator producing a first pulse signal proportional in cycle to a motor velocity and a second pulse signal proportional in cycle to the motor velocity and different in phase from the first pulse signal by about one quarter of a single cycle, a detection condition memory storing a plurality of detection conditions including a condition of distinctively detecting pulse edges in the same direction of the same pulse signal, so as to output either of the detection conditions depending upon a specified condition, a detection condition setting unit specifying the detection conditions received from the detection condition memory, a pulse edge detector detecting part or all of leading and trailing edges of the first and second pulse signals depending upon the detection conditions specified by the detection condition setting unit, a time counter measuring a period of time between the pulse edges detected by the pulse edge detector, and a velocity converter using the period of time measured by the time counter to sequentially convert it into said motor velocity and thereby detect said motor velocity, and such an arrangement of the invention, when the plurality of conditions of encoder pulse edge detection are appropriately combined with one another, permits more efficient and more accurate detection of the motor velocity.
The specified condition may include the motor velocity, the number of the cycles of the first or the second pulse signal, or an amount of actuation by the motor.
The time counter may simultaneously measure at least four periods of time between the pulse edges in parallel with one another.
The time counter may measure the periods of time between the pulse edges in the same direction of the same pulse signal when the above-mentioned pulse detector distinctively detects the pulse edges in the same direction of the same pulse signal.
The detection condition memory and the detection condition setting unit may be comprised of either one of PROM, EEPROM, and ASIC.
The velocity converter may execute conversion into the motor velocity by dividing a distance corresponding to an interval between the pulse edges by the period of time.
The control apparatus according to the invention further includes a comparison reference value memory storing comparison reference values determined for each of the pulse edges, from the one preceding by a specific number of pulse edges to a target edge which is a pulse edge indicating a targeted stop position of an object to be driven by the motor, to the target edge, and a motor stop controller comparing the comparison reference value with the motor velocity for each of the pulse edges from the specific number of the pulse edges before the target edge to the target edge so as to give a command to stop the motor when the motor velocity is equal to or over the comparison reference value.
The comparison reference value memory may be comprised of either one of PROM, EEPROM, and ASIC while the motor stop controller may be comprised of a CPU.
The pulse edge detector, the time counter, and the velocity converter may be comprised of a CPU.
The signal generator may be comprised of an encoder.
A motor control method according to the invention will be outlined as follows. The method is directed to detecting a motor velocity by performing the steps of distinctively detecting leading and trailing edges of two pulse signals proportional in cycle to the motor velocity and different in phase by about one quarter of the cycle from one another, measuring a period of time between pulse edges in the same direction of the same pulse signal, using the period of time between the pulse edges to sequentially convert it into the motor velocity and thereby detect the motor velocity.
The motor control method according to the invention has a basic configuration directed to detecting a motor velocity with greatly enhanced resolution and with constant high accuracy, comprising: a first step of generating a first pulse signal proportional in cycle to a motor velocity and a second pulse signal proportional in cycle to the motor velocity and different in phase from the first pulse signal by about one quarter of a single cycle; a second step of distinctively detecting leading and trailing edges of the first and second pulse signals from one another; a third step of measuring a period of time between the pulse edges in the same direction of the same pulse; and a fourth step of using a measurement result of the period of time to sequentially convert it into the motor velocity and thereby detect the motor velocity.
The fourth step as mentioned above may include dividing a distance corresponding to an interval between the pulse edges by the period of time to perform the conversion to the motor velocity.
The control method according to the invention further includes a fifth step of comparing said motor velocity with comparison reference values for individual pulse edges from a pulse edge preceding by a predetermined number of pulse edges to a target edge which is a pulse edge indicating a target stop position of an object to be driven by said motor to said target edge, at respective said pulse edges, and issuing a command to stop the motor when said motor velocity is equal to or over said comparison reference values.
The motor control method according to the invention has a practical configuration directed to detecting a motor velocity, comprising: a first step of generating a first pulse signal proportional in cycle to a motor velocity and a second pulse signal proportional in cycle to the motor velocity and different in phase from the first pulse signal by about one quarter of a cycle; a second step responsive to a specified condition to select one of a plurality of conditions of detection which include a condition of distinctively detecting pulse edges in the same direction of the same pulse signal; a third step depending upon the selected condition of detection to detect part or all of leading and trailing edges of the first and second pulse signals; a fourth step of measuring a period of time between the detected pulse edges; a fifth step of using a measurement result of the period of time to sequentially convert it into the motor velocity and thereby detect the motor velocity. With such a configuration, when the plurality of conditions of detecting the encoder pulse edges are combined with one another, the motor velocity can be detected with further enhanced efficiency and accuracy.
The specified condition may include the motor velocity, the number of the cycles of the first or the second pulse signal, or an amount of actuation by the motor.
In distinctively detecting the pulse edges in the same direction of the same pulse signal in the third step as mentioned above, a period of time between the pulse edges in the same direction of the same pulse may be measured in the fourth step.
In the fifth step, a distance corresponding to an interval between the pulse edges may be divided by the period of time to execute the conversion into the motor velocity.
The control method according to the invention may further comprise a sixth step of comparing said motor velocity with comparison reference values for individual pulse edges from a pulse edge preceding by a predetermined number of pulse edges to a target edge which is a pulse edge indicating a target stop position of an object to be driven by said motor to said target edge, at respective said pulse edges, and issuing a command to stop the motor when said motor velocity is equal to or over said comparison reference values.
The pulse signals may be generated by an encoder.
In the motor control apparatus and motor control method according to the invention as mentioned above, the encoder may be a linear encoder fixed to a carriage of a serial printer while the motor may be a carriage motor actuating the carriage.
The encoder may also be a rotary encoder for a paper feeding motor in a serial printer while the motor may be a paper feeding motor that feeds paper in the serial printer.
It is another object of the invention to provide a motor control apparatus, a motor control method, and, a recording medium storing control programs for a motor, which, upon actuation by a motor, permit accurate detection of a velocity of the motor even when reverse rotations are caused in a unit to which an encoder is attached.
The motor control apparatus according to the invention includes a reverse rotation detector for detecting whether, upon actuation by the motor, reverse rotations are caused in an attachment unit where the encoder is attached, from output pulses from the encoder rotated by rotations of the motor, a first pulse counter counting edges of the output pulses from the encoder after the attachment unit has rotated from a reverse direction to a normal direction when the reverse rotations are caused in the attachment unit, to give a start command when a counted value reaches a first specified value, and a speed calculator receiving the start command when the reverse rotations are caused in the attachment unit, to compute the motor velocity from the output pulses from the encoder.
The motor control apparatus may further include a second pulse counter which, upon actuation by the motor, counts the edges of the output pulses from the encoder to give a start command when a counted value reaches a second specified value, and the speed calculator may be configured to receive the start command output from the first pulse counter when the reverse rotations are caused in the attachment unit, or receive the start command output from the second pulse counter when the reverse rotations are not caused in the attachment unit, to start computation of the velocity.
The motor may be a paper feeding motor in a printing machine.
The motor control apparatus may include a speed controller controlling the motor velocity by referring to a difference between a targeted velocity of the motor and the motor velocity obtained through the computation by the speed calculator.
The motor control method according to the invention includes the steps of referring to output pulses from an encoder rotated by rotations of a motor to detect, upon actuation by the motor, whether reverse rotations are caused in an attachment unit where the encoder is attached, counting edges of the output pulses from the encoder after the attachment unit has rotated from a reverse direction to a normal direction when reverse rotations are caused in the attachment unit to issue a start command when a counted value reaches a first specified value, and computing the motor velocity from the output pulses from the encoder when the start command is received.
The motor control method may further include a step of counting edges of the output pulses from the encoder prior to the step of computing the motor velocity, to issue a start command when a counted value reaches a second specified value or when reverse rotations are not caused in the attachment unit.
The motor control method may further include a step of controlling the motor velocity from a difference between a targeted velocity of the motor and the computed velocity after the step of computing the motor velocity.
The motor may be a paper feeding motor in a printing machine.
The record medium storing control programs for a motor according to the invention includes the steps of detecting, upon actuation by the motor, if reverse rotations are caused in an attachment unit where an encoder is attached, from output pulses from the encoder rotated by rotations of the motor, counting edges of the output pulses from the encoder after the attachment unit has rotated from a reverse direction to a normal direction, when reverse rotations are caused in the attachment unit, to issue a start command when a counted value reaches a first specified value, and computing the motor velocity when the start command is received, by ring to the output pulses from the encoder.
The record medium storing computer programs according to the invention stores a computer program to execute any of the steps of the motor control method according to the invention in a computer system.